home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 June / Macworld (1999-06).dmg / Shareware World / Info / For Developers / MacZoop2.0.sea / MacZoop2.0 / Required Classes / ZObjectArray.h < prev    next >
Text File  |  1998-12-17  |  2KB  |  69 lines

  1. /*************************************************************************************************
  2. *
  3. *
  4. *            MacZoop - "the framework for the rest of us"         
  5. *
  6. *
  7. *
  8. *            ZObjectArray.h        -- the basic container class object
  9. *
  10. *
  11. *
  12. *
  13. *
  14. *            © 1996, Graham Cox
  15. *
  16. *
  17. *
  18. *
  19. *************************************************************************************************/
  20.  
  21.  
  22. #pragma once
  23.  
  24. #ifndef __ZOBJECTARRAY__
  25. #define    __ZOBJECTARRAY__
  26.  
  27. #ifndef __ZARRAY__
  28. #include    "ZArray.h"
  29. #endif
  30.  
  31.  
  32. DEFINECLASSID( ZObjectArray, 'zoba' );
  33.  
  34.  
  35. template <class T> class ZObjectArray : public ZArray
  36. {
  37. protected:
  38.     T***    o;
  39.     
  40. public:
  41.     ZObjectArray();
  42.     
  43.     virtual T*        GetObject( const long index );
  44.     virtual void    SetArrayItem(void* item, const long index);
  45.     virtual void    GetArrayItem(void* item, const long index);
  46.     virtual void    ConcatenateArray( ZObjectArray<T>* anArray );
  47.     virtual long    FindIndex(T* item);
  48.     virtual void    Swap( const long itema, const long itemb );
  49.     virtual void    DeleteObject(T* item);
  50.     virtual void    DisposeAll();
  51.     virtual Boolean    Contains(T* item);
  52.     virtual void    DoForEach( IteratorProcPtr aProc, const long ref );
  53.     virtual void    MoveItem( const long curIndex, const long newIndex );
  54.     virtual void    MoveToFront( const long index );
  55.     virtual void    MoveToBack( const long index );
  56.     virtual long    InsertSortedItem( void* item, SortCmpProcPtr compareProc, const long ref );
  57.     
  58. // streaming:
  59.  
  60.     virtual void    WriteToStream( ZStream* aStream );
  61.     virtual void    ReadFromStream( ZStream* aStream );
  62. };
  63.  
  64.  
  65. typedef ZObjectArray<ZObject> ZObjectList;
  66.  
  67. DEFINECLASSID( ZObjectList, 'zoba' );
  68.  
  69. #endif